package com.fcscs.cservice.dao;

import java.util.List;

import org.springframework.stereotype.Repository;

import com.fcscs.core.dao.Dao;
import com.fcscs.cservice.domain.InRoomItem;

@Repository
public interface InRoomItemDao extends Dao {

	/**
	 * @param <E>
	 * @param cls
	 * @param id
	 * @return
	 */
	<E extends InRoomItem> E get(Class<E> cls, long id);

	/**
	 * @param id
	 * @return
	 */
	InRoomItem get(long id);
	
	List<InRoomItem> getInRoomItemList(long orgId, long propId, boolean isCurrent);
	
	List<InRoomItem> getInRoomItemList(long orgId, long propId, long versionId);

	/**
	 * @param loc
	 * @return
	 */
	Boolean delete(InRoomItem loc);

	/**
	 * @param loc
	 */
	void permDelete(InRoomItem loc);

	/**
	 * @param <E>
	 * @param loc
	 * @return
	 */
	<E extends InRoomItem> void save(E loc);
	
	boolean isInRoomItemTaken(long orgId, long propId, String name, Long id, long versionId);

	
}
